#include <iostream>
using namespace std;

inline void Judge(int arr[], int num)
{
    // 将出现过的数字标记起来
    ++arr[num % 10];
    ++arr[num / 10 % 10];
    ++arr[num / 100];
}

int main()
{
    // 参考了大佬的解法
    for (int i = 123; i < 333; ++i)
    {
        // 数组 digits 用来标记出现过的数字
        int digits[10] = {0};
        int abc = i, def = i * 2, ghi = i * 3;
        Judge(digits, abc);
        Judge(digits, def);
        Judge(digits, ghi);
        int j;
        for (j = 1; j < 10; ++j)
            if (digits[j] != 1 || digits[0] != 0)
                // 每个数字都应该只出现一次，除了 0 不能出现
                break;

        if (j == 10)
            cout << abc << ' '
                 << def << ' '
                 << ghi << endl;
    }
    return 0;
}
